package com.power.project.service;

import com.power.project.model.bo.ProjectSaveBO;
import com.power.project.model.bo.ProjectUserSaveBO;
import com.power.project.model.pageInfo.P_projectuserPageInfo;
import com.power.project.model.vo.ProjectVO;
import com.power.project.model.vo.UserBaseVO;
import org.springframework.data.domain.Page;
import com.power.project.model.P_project;
import com.power.project.model.pageInfo.P_projectPageInfo;

import java.io.Serializable;
import java.util.List;

/**
 *  项目业务层
 */
public interface P_projectService {

    /**
     *  根据id获取项目对象
     */
    P_project getById(Serializable id);

    /**
     *  根据传入项目对象进行新增或更新操作
     */
    void saveOrUpdate(P_project p_project);

    /**
     *  根据id删除项目
     */
    void removeById(Serializable id);

    /**
     *  根据传入条件查询项目分页结果
     */
    Page<ProjectVO> findAll(P_projectPageInfo pageInfo);

     /**
     *  根据id批量删除项目
     */
    void removeByIds(List<Integer> list);

     /**
     *  批量保存项目
     */
    void saveAll(List<P_project> list);

    /**
     * 查找项目下关联人员
     */
    Page<UserBaseVO> queryUsersByPid(P_projectuserPageInfo pageInfo);

    /**
     * 添加项目关联人员
     */
    void addProjectuser(ProjectUserSaveBO puSaveBo);

    /**
     * 增加项目
     */
    void save(ProjectSaveBO saveBO);

    /**
     * 移除项目关联人员
     */
    void removeProjectuser(ProjectUserSaveBO puSaveBo);

    /**
     * 保存项目人员关联
     */
    void saveProjectuser(ProjectUserSaveBO puSaveBo);
}
